home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / sys / xxprobe.c < prev   
C/C++ Source or Header  |  1990-12-19  |  810b  |  42 lines

  1.  
  2. /*
  3.  * @(#)xxprobe.c 1.1 86/09/27
  4.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  5.  */
  6.  
  7. /*
  8.  * Probe routine for unspecial devices.
  9.  *
  10.  * We attempt an open on each of the standard devices.
  11.  * This requires that the open routines not print a message for failure.
  12.  *
  13.  * We also catch bus errors in case the device's absence causes one.
  14.  */
  15. #include "../h/sunromvec.h"
  16. #include "../h/setbus.h"
  17. #include "../dev/saio.h"
  18.  
  19. extern int devopen();
  20.  
  21. int
  22. xxprobe(sip)
  23.     struct saioreq *sip;
  24. {
  25.     int i, r;
  26.     bus_buf busbuf[4];
  27.     register struct boottab *btab;
  28.  
  29.     btab = sip->si_boottab;
  30.  
  31.     for (i = 0; i < btab->b_devinfo->d_stdcount; i++) {
  32.         sip->si_ctlr = btab->b_devinfo->d_stdaddrs[i];
  33.         if (setbus(busbuf)) 
  34.             continue;
  35.         r = devopen(sip);
  36.         unsetbus(busbuf);
  37.         if (r >= 0) 
  38.             return r;
  39.     }
  40.     return -1;        /* Not found */
  41. }
  42.